<html>
<head><meta charset="utf-8"><title>Learnability · t-community/rust-survey-2020 · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/index.html">t-community/rust-survey-2020</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html">Learnability</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="216585011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216585011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216585011">(Nov 13 2020 at 09:26)</a>:</h4>
<p>It's pretty clear from the survey that people still find Rust difficult to learn. However, there are a few things that are not so clear:</p>
<ul>
<li><em>Who</em> finds it difficult to learn? Is there a gap between C/C++ devs and others? </li>
<li><em>What</em> exactly is difficult to learn? Is it ownership? Async? etc.</li>
<li><em>How</em> difficult is it? Is the learning curve steep but quick or a long slog?</li>
</ul>



<a name="216624032"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216624032" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216624032">(Nov 13 2020 at 15:10)</a>:</h4>
<p><span class="user-mention" data-user-id="224872">@Ryan Levick</span> do you feel like that data is in the survey (and we should do more cross-indexing to try and unearth it), or have we done enough and it's not clear</p>



<a name="216624631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216624631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216624631">(Nov 13 2020 at 15:15)</a>:</h4>
<p>I'm not sure if the data we've collected can give us a really good view on this, but I do think we can get a better picture than we have no with more analysis. I'll come up with the questions we should ask of the data</p>



<a name="216626279"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216626279" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216626279">(Nov 13 2020 at 15:27)</a>:</h4>
<p>I think it's a really good idea btw to write out questions we might want to explore in follow-up surveys or next year</p>



<a name="216626300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216626300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216626300">(Nov 13 2020 at 15:27)</a>:</h4>
<p>We need a survey team :)</p>



<a name="216710384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216710384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216710384">(Nov 14 2020 at 06:23)</a>:</h4>
<p>Part of the problem is that Rust not only has an extremely high skill ceiling (which many languages have), but also that you <em>immediately</em> notice the high skill ceiling. C and Java and Python do get super complex in practice, as you build large projects and juggle a lot of things, but Rust can get super complex in like a single line of code.</p>



<a name="216710451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216710451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216710451">(Nov 14 2020 at 06:25)</a>:</h4>
<p>Most of the questions I field about Rust aren't questions that fit neatly under a chapter title in a book about Rust. Because Ownership (or whatever) is obvious enough, but it's the fine details when two "parts" of Rust interact where all the questions usually arise.</p>



<a name="216710726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216710726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216710726">(Nov 14 2020 at 06:33)</a>:</h4>
<p>As to the third bullet point: I'd say that almost every question I see asked gets answered fairly quickly, up until you start pushing into the realm of libs based question (eg: i'm using tokio, how do i X?) or the bleeding edge of the language (eg: what happens with my unsafe code when I X?). People are usually not left confused about a particular issue for extended periods of time. Working with Rust is mostly well enough compartmentalized that you can discover problems and solve problems in a little portions at a time, which i <em>think</em> means that the learning curve is best thought of as being a fairly shallow slope overall.</p>



<a name="216864497"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216864497" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> rylev <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216864497">(Nov 16 2020 at 12:32)</a>:</h4>
<p>I think one issue is that people have a certain definition of learnability that is unfavorable to Rust. In many languages you can become "productive" in terms of writing a lot of code, which might be very, very buggy, but you're at least doing something. Rust tends to put the breaks on you and force you to understand why your code might be incorrect before even letting you compile it.</p>



<a name="216879175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216879175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Erich Gubler <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216879175">(Nov 16 2020 at 14:39)</a>:</h4>
<p>Ryan, your theory makes sense to me. Most people I know that have had significant difficulty feeling productive in Rust have been banging their heads trying to write code very similar to what they have done before, without realizing or wanting to deal with the fact that what they wrote was incorrect.</p>



<a name="216879244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216879244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Erich Gubler <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216879244">(Nov 16 2020 at 14:39)</a>:</h4>
<p>They'll often get bogged down questioning the usefulness of blocking the compilation of code  they've always been able to write.</p>



<a name="216879346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/216879346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Erich Gubler <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#216879346">(Nov 16 2020 at 14:40)</a>:</h4>
<p>I say this with experience running a local Rust meetup here in Utah, USA, and mentoring several people online.</p>



<a name="217110044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/249854-t-community/rust-survey-2020/topic/Learnability/near/217110044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> apiraino <a href="https://rust-lang.github.io/zulip_archive/stream/249854-t-community/rust-survey-2020/topic/Learnability.html#217110044">(Nov 18 2020 at 09:05)</a>:</h4>
<p><span class="user-mention silent" data-user-id="224872">Ryan Levick</span> <a href="#narrow/stream/249854-t-community.2Frust-survey-2020/topic/Learnability/near/216864497">said</a>:</p>
<blockquote>
<p>In many languages you can become "productive" in terms of writing a lot of code, which might be very, very buggy, but you're at least doing something.</p>
</blockquote>
<p>This is very insightful. People are used to jot down a prototype and then iterate to refine and improve until the budget allows, that's not unheard in our field. Another aspect that perhaps was not explicited by the "learnability" answers is that many find difficult to prototype half-baked stuff, not out of "laziness" but because they need to. Case in point: in two days I have a demo of an MVP. Customer asks me to rush an API for the demo. It will be fun doing that in Rust.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>